home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / t_os / komei4 / komei4.exe / ICON / NAO_E.HD6 < prev    next >
Text File  |  1993-06-17  |  7KB  |  639 lines

  1. ds_name        db    'MOJ\NAO_E',0
  2.  
  3.  
  4. ; 直すアイコンの表示の箱一つ
  5. ; MOTO_E から呼ばれて指定されたアイコンを表示
  6. ; 拡大画面に転送
  7. ; 指示されて新しいアイコンを覚えている場所に戻す
  8. ; 古いアイコンを自分に表示
  9. ; MOTO_E に新しいアイコンを表示させる
  10.  
  11. paint_wd:
  12.  
  13.     SET_P    dt1
  14.  
  15.     RAM0    edi
  16.  
  17.     call    kae_dt1
  18.     mov    [esi],edi
  19.     mov    ax,ds
  20.     mov    [esi+4],ax
  21.  
  22.  
  23.     call    kae_dt2
  24.     mov    [esi],edi
  25.     mov    [esi+4],ax
  26.  
  27.     call    chibi
  28.     mov    [esi],edi
  29.     mov    [esi+4],ax
  30.  
  31.     call    deka
  32.     mov    [esi],edi
  33.     mov    [esi+4],ax
  34.  
  35.     call    moto_dt
  36.     mov    word ptr [edx],1
  37.  
  38. re_paint:
  39.      WD_CLS 0
  40.      BOX boxdt,1
  41.      ret
  42.  
  43. dt1:
  44.     call    sub_edi
  45.     dw    0
  46.     db    'MOTO_E',0
  47. p_call:
  48.     M_P_CALL
  49. p_set:
  50.     M_P_SET
  51.  
  52. be_called:
  53.     YOMU    ax,300
  54.     cmp    ax,1
  55.     je    kita    ;MOTO_Eより、絵を直せ
  56.     cmp    ax,3
  57.     je    modo    ;アイコン表に新しい絵をしまう。
  58.     cmp    ax,4
  59.     je    b_ful    ; ボックスを前の色で塗り潰す
  60.     cmp    ax,5
  61.     je    up_down    ;画像を上下入れ換える
  62.     cmp    ax,6
  63.     je    migi
  64.     cmp    ax,7
  65.     je    up_roll
  66.     cmp    ax,8
  67.     je    sd_roll
  68.  
  69.     cmp    ax,9
  70.     je    up2_roll
  71.  
  72.     cmp    ax,10
  73.     je    sd2_roll
  74.  
  75.     cmp    ax,400
  76.     je    neru
  77.     cmp    ax,500
  78.     je    okiru
  79.     ret
  80.  
  81. neru:
  82.     WD_ERZ 1
  83.     WD_ERZ 0
  84.     WD_LEFT
  85.     ret
  86. okiru:
  87.     WD_WANT
  88.     jmp    re_paint
  89.  
  90.  
  91.     
  92. up_roll:
  93.  
  94.     mov    edi,40000h
  95.     mov    esi,40000h
  96.  
  97.     mov    eax,41
  98.     shl    eax,9
  99.     add    edi,eax        ;line 41
  100.     add    esi,eax
  101.  
  102.     mov    ebx,162       ;324/2    1byte=2dot
  103.     add    edi,ebx    
  104.     add    esi,ebx
  105.  
  106.     mov    ecx,31
  107.  
  108.  
  109.     push    ds
  110.     mov    ax,120h        ;vram セレクタ
  111.     mov    ds,ax
  112.  
  113.     mov    eax,[edi+12]
  114.     push    eax
  115.     mov    eax,[edi+8]
  116.     push    eax
  117.     mov    eax,[edi+4]
  118.     push    eax
  119.     mov    eax,[edi]
  120.     push    eax
  121.  
  122.     add    esi,512
  123.  
  124. up_r1:
  125.  
  126.     mov    eax,[esi]
  127.     mov    [edi],eax
  128.     add    esi,4
  129.     add    edi,4
  130.  
  131.     mov    eax,[esi]
  132.     mov    [edi],eax
  133.     add    esi,4
  134.     add    edi,4
  135.  
  136.     mov    eax,[esi]
  137.     mov    [edi],eax
  138.     add    esi,4
  139.     add    edi,4
  140.  
  141.     mov    eax,[esi]
  142.     mov    [edi],eax
  143.  
  144. ;    add    esi,4
  145. ;    add    edi,4
  146.  
  147.     add    edi,512-12
  148.     add    esi,512-12
  149.     loop    up_r1
  150.  
  151.     pop    eax
  152.     mov    [edi],eax
  153.  
  154.     pop    eax
  155.     mov    [edi+4],eax
  156.  
  157.     pop    eax
  158.     mov    [edi+8],eax
  159.  
  160.     pop    eax
  161.     mov    [edi+12],eax
  162.  
  163.  
  164.  
  165.     pop    ds
  166.  
  167.     jmp    dada1
  168.  
  169. ;----------------
  170.  
  171. up2_roll:
  172.  
  173.     push    ds
  174.     mov    ax,120h        ;vram セレクタ
  175.     mov    ds,ax
  176.  
  177.  
  178.     mov    edi,40000h
  179.     mov    esi,40000h
  180.  
  181.     mov    eax,41+30
  182.     shl    eax,9
  183.  
  184.     add    edi,eax        ;line 41
  185.     add    esi,eax        ;line 41
  186.  
  187.     mov    ebx,162       ;324/2    1byte=2dot
  188.     add    edi,ebx    
  189.     add    esi,ebx
  190.  
  191.     add    edi,512
  192.  
  193.  
  194.     mov    eax,[edi+12]
  195.     push    eax
  196.     mov    eax,[edi+8]
  197.     push    eax
  198.     mov    eax,[edi+4]
  199.     push    eax
  200.     mov    eax,[edi]
  201.     push    eax
  202.  
  203.     mov    ecx,31
  204.  
  205. up2_r1:
  206.  
  207.     mov    eax,[esi]
  208.     mov    [esi+512],eax
  209.     add    esi,4
  210.  
  211.     mov    eax,[esi]
  212.     mov    [esi+512],eax
  213.     add    esi,4
  214.  
  215.     mov    eax,[esi]
  216.     mov    [esi+512],eax
  217.     add    esi,4
  218.  
  219.     mov    eax,[esi]
  220.     mov    [esi+512],eax
  221.  
  222. ;    add    esi,4
  223.  
  224.     sub    esi,512+12
  225.  
  226.     loop    up2_r1
  227.  
  228.     add    esi,512
  229.  
  230.     pop    eax
  231.     mov    [esi],eax
  232.  
  233.     pop    eax
  234.     mov    [esi+4],eax
  235.  
  236.     pop    eax
  237.     mov    [esi+8],eax
  238.  
  239.     pop    eax
  240.     mov    [esi+12],eax
  241.  
  242.  
  243.  
  244.     pop    ds
  245.  
  246.     jmp    dada1
  247.  
  248. ;------------
  249. sd_roll:
  250.  
  251.  
  252.     mov    edi,40000h
  253.     mov    esi,40000h
  254.  
  255.     mov    eax,41
  256.     shl    eax,9
  257.     add    edi,eax        ;line 41
  258.     add    esi,eax
  259.  
  260.     mov    ebx,162       ;324/2    1byte=2dot
  261.     add    edi,ebx    
  262.     add    esi,ebx
  263.  
  264.  
  265.  
  266.     push    ds
  267.     mov    ax,120h        ;vram セレクタ
  268.     mov    ds,ax
  269.     
  270.  
  271.     mov    ecx,15
  272.     mov    ebx,32
  273.  
  274. sd_r2:
  275.     mov    ah,[edi]
  276.  
  277. sd_r1:
  278.     mov    al,[edi+1]
  279.     mov    [edi],al
  280.     inc    edi
  281.     loop    sd_r1
  282.  
  283.     mov    [edi],ah
  284.  
  285.     add    edi,512-15
  286.     mov    ecx,15
  287.     dec    ebx
  288.     jne    sd_r2
  289.  
  290.  
  291.     pop    ds
  292.  
  293.     jmp    dada1
  294.  
  295. ;------------
  296. sd2_roll:
  297.  
  298.  
  299.     mov    edi,40000h
  300.     mov    esi,40000h
  301.  
  302.     mov    eax,41
  303.     shl    eax,9
  304.     add    edi,eax        ;line 41
  305.     add    esi,eax
  306.  
  307.     mov    ebx,162+15       ;324/2    1byte=2dot
  308.     add    edi,ebx    
  309.     add    esi,ebx
  310.  
  311.  
  312.  
  313.     push    ds
  314.     mov    ax,120h        ;vram セレクタ
  315.     mov    ds,ax
  316.     
  317.  
  318.     mov    ecx,15
  319.     mov    ebx,32
  320.  
  321. sd2_r2:
  322.     mov    ah,[edi]
  323.  
  324. sd2_r1:
  325.     mov    al,-1[edi]
  326.     mov    [edi],al
  327.     dec    edi
  328.     loop    sd2_r1
  329.  
  330.     mov    [edi],ah
  331.  
  332.     add    edi,512+15
  333.  
  334.     mov    ecx,15
  335.     dec    ebx
  336.  
  337.     jne    sd2_r2
  338.  
  339.  
  340.     pop    ds
  341.  
  342.     jmp    dada1
  343.  
  344. ;--------------
  345. ; 右と左を入れ換える
  346.  
  347. migi:
  348.     mov    edi,40000h
  349.     mov    esi,40000h
  350.  
  351.     mov    eax,41
  352.     shl    eax,9
  353.     add    edi,eax        ;line 41
  354.     add    esi,eax
  355.  
  356.     mov    ebx,162       ;324/2    1byte=2dot
  357.     add    edi,ebx    
  358.     add    esi,ebx
  359.     add    esi,15        ;line の尻尾
  360.  
  361.  
  362.     push    ds
  363.  
  364.     mov    ax,120h        ;vram セレクタ
  365.     mov    ds,ax
  366.  
  367.     mov    ebx,32
  368.  
  369. pp_2:
  370.     mov    ecx,8        ;32/2/4
  371. lp_3:
  372.     mov    ah,[edi]
  373.     mov    al,[esi]
  374.  
  375.     sub    edx,edx
  376.  
  377.     mov    dh,ah
  378.     shr    dh,4
  379.     shl    ah,4
  380.     add    ah,dh
  381.  
  382.     mov    dl,al
  383.     shr    dl,4
  384.     shl    al,4
  385.     add    al,dl
  386.  
  387.     mov    [esi],ah
  388.     mov    [edi],al
  389.  
  390.     inc    edi
  391.     dec    esi
  392.     loop    lp_3
  393.  
  394.     add    edi,512-8
  395.     add    esi,512+8
  396.  
  397.     dec    ebx
  398.     cmp    ebx,0
  399.     jne    pp_2    
  400.  
  401.  
  402.     pop    ds
  403.  
  404.     jmp    dada1
  405.  
  406.  
  407.  
  408.  
  409. ;----------------
  410. ; x1 = 324    y1 = 41
  411. ; x2 = 324    y2 = 72
  412. ; line=32=16byte
  413.  
  414.  
  415. up_down:
  416.  
  417.     mov    edi,40000h
  418.     mov    esi,40000h
  419.  
  420.     mov    eax,41
  421.     shl    eax,9
  422.     add    edi,eax        ;line 41
  423.     mov    ebx,162       ;324/2    1byte=2dot
  424.     add    edi,ebx    
  425.  
  426.     mov    eax,72
  427.     shl    eax,9
  428.     add    esi,eax        ;line 41
  429.     add    esi,ebx    
  430.  
  431.     push    ds
  432.  
  433.     mov    ax,120h        ;vram セレクタ
  434.     mov    ds,ax
  435.  
  436.     mov    ebx,16
  437.  
  438. pp_1:
  439.     mov    ecx,4        ;32/2/4
  440. lp_2:
  441.     mov    eax,[edi]
  442.     mov    edx,[esi]
  443.     mov    [esi],eax
  444.     mov    [edi],edx
  445.  
  446.     add    esi,4
  447.     add    edi,4
  448.  
  449. ;    dec    ecx
  450. ;    cmp    ecx,0
  451. ;    jne    lp_2
  452.  
  453.     loop    lp_2
  454.  
  455.     add    edi,512-16
  456.     sub    esi,512+16
  457.  
  458.     dec    ebx
  459.     cmp    ebx,0
  460.     jne    pp_1    
  461.  
  462.  
  463.     pop    ds
  464.  
  465.     jmp    dada1
  466.  
  467. modo:
  468.     mov    ah,5
  469.     mov    al,1
  470.     call    zzz
  471.  
  472. ;    call    moto_dt            ;新しいアイコンを元の場所にしまう。
  473. ;    movzx    eax,word ptr [edx]
  474.  
  475.     KAKU    word ptr 300,6
  476.     CALL_P    dt1        ;302 アイコン番号
  477.  
  478.     YOMU    ax,302
  479.     movzx    eax,ax
  480.     dec    eax
  481.     mov    ebx,512
  482.     mul    ebx
  483.     mov    edi,3*1024
  484.     add    edi,eax
  485.     call    kae_dt
  486.     mov    [esi],edi
  487.     mov    ah,24h
  488.     call    zzz
  489.  
  490.     call    kae_dt1
  491.     mov    ah,24h
  492.     call    zzz        ;古いアイコンをget
  493.  
  494.     call    kae_dt2
  495.     mov    ah,25h
  496.     call    zzz        ;古いアイコンをgput
  497.  
  498.     call    dadada        ;古いアイコンを拡大枠へ
  499.  
  500.     KAKU    word ptr 300,4
  501.     GO_P    dt1        ;MOTO_Eに新しいアイコンを表示させる
  502.     
  503. kae_dt:
  504.     call    sub_esi
  505.     dd    0
  506.     dw    114h
  507.     dw    324
  508.     dw    41
  509.     dw    324+31
  510.     dw    41+31
  511.  
  512. kae_dt2:
  513.     call    sub_esi
  514.     dd    0
  515.     dw    14h
  516.     dw    324
  517.     dw    41
  518.     dw    324+31
  519.     dw    41+31
  520.  
  521. kae_dt1:
  522.     call    sub_esi
  523.     dd    0
  524.     dw    14h
  525.     dw    264
  526.     dw    41
  527.     dw    264+31
  528.     dw    41+31
  529.  
  530.  
  531.  
  532. kita:
  533.     YOMU    ax,302
  534.     call    moto_dt
  535.     mov    [edx],ax
  536.     call    icon_dt
  537.     mov    [edi+10],ax
  538.     call    u_con
  539.  
  540. dada1:
  541.     mov    ah,5
  542.     mov    al,1
  543.     call    zzz
  544.  
  545. dadada:
  546.  
  547.     call    chibi
  548.     mov    ah,26h
  549.     mov    al,0
  550.     call    zzz
  551.  
  552.     call    deka
  553.     mov    ah,27h
  554.     mov    al,0
  555.     call    zzz
  556.  
  557.     call    kesu_ms
  558.      ret
  559. kesu_ms:
  560.     M_KESUMS
  561.  
  562. chibi:
  563.     call    sub_esi
  564.     dd    0
  565.     dw    0
  566.     dw    324
  567.     dw    41
  568.     dw    324+31
  569.     dw    41+31
  570.     dw    32
  571.     dw    32
  572. deka:
  573.     call    sub_esi
  574.     dd    0
  575.     dw    0
  576.     dw    370
  577.     dw    0
  578.     dw    370+255
  579.     dw    255
  580.     dw    32
  581.     dw    32
  582.  
  583. boxdt1:
  584.     call sub_edi                               ; edi 固定です。
  585.         dw    1,33,33,0,0,0,20,15,0,1
  586.  
  587. b_ful:
  588.     YOMU    ax,302
  589.     call    boxdt1
  590.     mov    [edi+14],ax    
  591.     mov    [edi+16],ax
  592.     BOX    boxdt1,1
  593.     ret
  594.     
  595. mouse_in:
  596.         ret
  597.  
  598. moto_dt:
  599.     call    sub_edx
  600.     dw    1
  601.  
  602. icon_dt:
  603.     call    sub_edi
  604.     dw    1,1,1,32,0,1,0        ;s_no,of_x,of_y,+x,+y,no,0
  605.  
  606. u_con:
  607.     mov    ah,2
  608.     mov    al,0
  609.     call    MOUSE
  610.  
  611.     mov    al,31
  612.     mov    ah,100
  613.     call    komei1
  614.  
  615.     mov    ah,2
  616.     mov    al,1
  617.     call    MOUSE
  618.     ret
  619.  
  620.  
  621. look_me:
  622.      call sub_esi         ; esi 固定です。
  623.      dd 0,0
  624.      dw     1    ; ここが 1 の物は open start です。
  625.          dw      0
  626.          dw  33,33,323,40,15,0,0,0
  627.  
  628.  
  629.  
  630. boxdt:
  631.     call sub_edi                               ; edi 固定です。
  632.         dw    1,33,33,0,0,0,20,15,0,0
  633.  
  634. ; [count][sz_x][sz_y][off_x][off_y][+x][+y][f_col][b_col][s_no]
  635.  
  636. zzz:
  637.     M_ZZZ
  638.  
  639.